{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a79b52f5",
   "metadata": {},
   "source": [
    "## 案例背景\n",
    "某网站首页双12 活动 banner主色调选择（现提供两个版本的banner)，banner 为网站PC端或App 的\n",
    "顶部或底部横向贯穿整个界面的广告条。现需要数据分析师通过ABTest实现对这两个不同色调的\n",
    "banner进行择优选择。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92d31aa9",
   "metadata": {},
   "source": [
    "### 作业要求\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "88c7745d",
   "metadata": {},
   "source": [
    "### 1.检验指标确定（10分）\n",
    "1. 广告做的好不好以点击或下单作为广告的效果评估\n",
    "2. 做广告的同时要注重用户体验（留存，活跃时长，评价，pv等）\n",
    "3. 活动类广告的特点是时效性强，所以给我们的测试时间很短\n",
    "4. 请根据提示确定一类二类指标\n",
    "打分标准：\n",
    "确定一类指标正确 5分\n",
    "确定二类指标正确 5分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c16a054e",
   "metadata": {},
   "outputs": [],
   "source": [
    "一类指标：用户人均停留时长                     ---------------检验统计量为均值之差\n",
    "二类指标：banner广告的点击率=点击用户数/用户数 ---------------检验统计量为比例之差"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "82a895e7",
   "metadata": {},
   "source": [
    "### 2.确定检验统计量 （5分）\n",
    "样 本 统 计 量 确 定 分 布 的 分 别 有 、 、 、 、 、 请 从 中 选 择 一 个 统 计 量\n",
    "打分标准\n",
    "指标选择正确 5 分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "77491560",
   "metadata": {},
   "outputs": [],
   "source": [
    "一类指标：用人均停留时长之差做统计量，即 μ 𝐴 − μ 𝐵    \n",
    " \n",
    "二类指标：用两组广告点击率之差做统计量，即 𝑃 𝐴 − 𝑃 𝐵    "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "52e5c3df",
   "metadata": {},
   "source": [
    "### 3埋点收集数据\n",
    "为实现此功能ABTest，要在首页banner处进行埋点收集数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "cdfe9528",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Eventpage埋点页面')"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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r776KvX19fT39wPwcz/3cxw4cICpqSmSySSNjY0kEgm+/e1vMz09zUMPPcSRI0cIhUJs3LiRpqYmTp06xcTEBE1NTWzevJnXXnuNM2fOoGkahUJhSbPzlVK5LhUh8tWvfpXvf//7rFixgscee4wtW7Yseb0DgQA/9VM/xdjYGHv27GHjxo2sWrWK1157jYGBAe6//35Onz6NbdusWLGCmpoastkse/fupb6+nubmZj71qU/xxhtvcPbsWbZu3epnBQWDQfbs2cPJkyf58Ic/fM3HdjPJ5AqMT07R2dXBzu3bee4f/pGSaWMYOkgXRLkYmuIdI5FIeHVcLkjxXLVq1UXL6rpOT08P3V3dXhAygBf6Q21tLZquMzg4yM6dO2loaOAjH/kI2WzW79ibmpp47LHH0DRtwXInQWgCy7QIhoJs2bYVx7aZm5tn5epVV51uqmka4XCY9evXY5om4XD4kusKIUgkEnzyk5/0LbaxWAzpunzgQx8kGAgyPz9HoVBk5307icVieAHYgnA0whNPPkEsHl90y15JO4UQNDY2MjQ0xMjIiD/ddV16e3sv2kYikeCpp54iFAr5GYJ1dXU0Nzej6zqPPPIINTU1dHd3e5accJhQyLMOLVu2jGRDkmAwyAMPPODH/twOCHm7OImWIJ1OU1tbSyqVuq4gyWul2jR2YbBWpfOvTK9ethJnUbEeaJp2Sy94dduq896r/30532slzbdiOaj4UK+lHZUU3qWi8EOhkF8ErNLeamtFdYqt4zh+tknluCrLVP+3el7lOlauUSXYtPJAXm8BISklpmn6X4+V9l3uXLmu6x9j9T1SuT6wUGivItQqy154fqof5cp5udZrdS1I/38l+XyRH//UPyeVSvHc//kr4tEwEvi9//4/+V9/8pf80md/kd/+7d/i05/+aT75iY/zyZ/8Gfp6+/gvv/1rhEMBhBIiCsUdzdX03/ekReRquFxHUi1CllrudioYAxdX66sOTL2UHq3u2G+EmAoGg0tahS4lhKrbW93OC9tS+X3hdqo77er/Vq93I69PMBgkEAhc8Tarr8lS1qwLf1/qHqtevlqs3FokC82VSCmoiIs39+2nvibO+59+kmRdDe996j381V9/gfMDw6xZtRwlQhSKewclRC7D20U8X/j1fTXrv5O83Vd5ZZm343otBpdrx5V0ukstd+G0K13n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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "Eventpage=plt.imread('埋点首页 (2).jpg')\n",
    "plt.imshow(Eventpage)\n",
    "\n",
    "plt.title('Eventpage埋点页面',fontsize = 18,weight='bold', color='white',backgroundcolor='#c5b783',pad = 25)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "fe6b62d3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>事件名</th>\n",
       "      <th>bannerview</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>事件说明</td>\n",
       "      <td>用户浏览点击banner页</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>属性名</td>\n",
       "      <td>属性说明</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>user_id</td>\n",
       "      <td>用户ID，唯一识别码</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>timestemp</td>\n",
       "      <td>用户浏览banner页的时间</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>group</td>\n",
       "      <td>用户所属的组别，对照组和实验组</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>landing_page</td>\n",
       "      <td>用户所浏览的banner页的所属类别</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>convert</td>\n",
       "      <td>用户是否点击，0：否，1：是</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>pre_url</td>\n",
       "      <td>前导页</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>url_path</td>\n",
       "      <td>页面路径</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>page_name</td>\n",
       "      <td>页面名称</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>entry_time</td>\n",
       "      <td>进入时间</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>exit_time</td>\n",
       "      <td>退出时间</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>view_duration</td>\n",
       "      <td>页面浏览时长</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              事件名          bannerview\n",
       "0            事件说明       用户浏览点击banner页\n",
       "1             属性名                属性说明\n",
       "2         user_id          用户ID，唯一识别码\n",
       "3       timestemp      用户浏览banner页的时间\n",
       "4           group     用户所属的组别，对照组和实验组\n",
       "5    landing_page  用户所浏览的banner页的所属类别\n",
       "6         convert      用户是否点击，0：否，1：是\n",
       "7         pre_url                 前导页\n",
       "8        url_path                页面路径\n",
       "9       page_name                页面名称\n",
       "10     entry_time                进入时间\n",
       "11      exit_time                退出时间\n",
       "12  view_duration              页面浏览时长"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Event=pd.read_excel('作业埋点事件.xls')\n",
    "Event\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5cbaa038",
   "metadata": {},
   "source": [
    "### 4 确定H0,H1   A组为实验组treatment，B组为对照组control"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1e7d29de",
   "metadata": {},
   "outputs": [],
   "source": [
    "一类指标：实验组人均停留时长不显著小于对照组"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5f3d1dc7",
   "metadata": {},
   "source": [
    "   H1:   $$\n",
    "        u_A-u_B<\\alpha_1\\\\\n",
    "        u_B=u_A-\\alpha_1\\\\\n",
    "        \\barx_A-\\barx_B\\\\\n",
    "         n_A=Kn_Bandn_B =(1+\\frac{1}{k})(\\alpha{\\frac{z_(1-\\alpha)+z_(1-\\beta)}{u_A-u_B}})^2\n",
    "        \\alpha=\\sqrt{\\frac{dx}{dy} + \\frac{dx}{dy}}\n",
    "        \\alpha=\\sqrt{\\frac{\\alpha_A ^2}{n_A}+\\frac{\\alpha_B ^2}{n_B}}\n",
    "        $\n",
    "        "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "364763db",
   "metadata": {},
   "source": [
    "$u_A-u_B<\\alpha_1$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "adfa85c5",
   "metadata": {},
   "source": [
    "$u_B=u_A-\\alpha_1$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8626693d",
   "metadata": {},
   "source": [
    " $\\bar{x_A}-\\bar{x_B}$   "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "350ce284",
   "metadata": {},
   "source": [
    "$n_A=Kn_Bandn_B =(1+\\frac{1}{k})(\\alpha{\\frac{Z_1-\\alpha+Z_1-\\beta}{u_A-u_B}})^2$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e0ece9d3",
   "metadata": {},
   "source": [
    "$\\sigma=\\sqrt{\\frac{\\sigma_A ^2}{n_A}+\\frac{\\sigma_B ^2}{n_B}}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "5353143b",
   "metadata": {},
   "outputs": [],
   "source": [
    "一类指标：\n",
    "H0 : 对照组人均时长 - 实验组人均时长 >= 2* 实验前人均时长标准差\n",
    "H1 ：对照组人均时长 - 实验组人均时长 < 2* 实验前人均时长标准差\n",
    "H0: control_time-treatment_time>=2*std(control_time)\n",
    "H1: control_time-treatment_time<2*std(control_time)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2383b16e",
   "metadata": {},
   "source": [
    "#引用包\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy import stats\n",
    "import pymysql\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "plt.rcParams['font.family']='SimHei'\n",
    "plt.rcParams['axes.unicode_minus']= False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "acebcc5d",
   "metadata": {},
   "outputs": [],
   "source": [
    "二类指标：实验组广告点击率不显着大于对照组"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b86ad13f",
   "metadata": {},
   "source": [
    "$\\bar{x_A}-\\bar{x_B} >\\alpha_1$ \\\\\\\\\\ $P_A-P_B>0$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fa329b3c",
   "metadata": {},
   "outputs": [],
   "source": [
    "二类指标 :\n",
    "H0: 实验组广告的点击率 - 对照组点击率 <0\n",
    "H1: 实验组广告的点击率- 对照组的点击率 > =0\n",
    "H0:p_treament-p_control<0\n",
    "H1:p_treament-p_control>=0"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bc74f4a6",
   "metadata": {},
   "source": [
    "### 5.确定显著水平α （5分)\n",
    "    1. α 通常选择有（0.05，0.01，0.1）\n",
    "    2. 请根据提示确定α"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "133d38f9",
   "metadata": {},
   "outputs": [],
   "source": [
    "一类错误默认：𝛼=0.05\n",
    "二类错误默认：𝛽=0.02"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "fce202fb",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "id": "cc789a68",
   "metadata": {},
   "source": [
    "### 6.计算样本量 （15分）"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "10bf0074",
   "metadata": {},
   "source": [
    "#选择正确的样本量计算公式  \n",
    "$n_A=kn_Bandn_B =(\\frac{P_A(1-P_A)}{k})+P_B(1-P_B)(\\frac{Z_1-\\alpha+Z_1-\\beta}{P_A-P_B})^2$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "b801b3ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "#引用包\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from scipy import stats\n",
    "import pymysql\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "plt.rcParams['font.family']='SimHei'\n",
    "plt.rcParams['axes.unicode_minus']= False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1b43e3a7",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>timestamp</th>\n",
       "      <th>group</th>\n",
       "      <th>landing_page</th>\n",
       "      <th>converted</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>851104</td>\n",
       "      <td>2017-01-21 22:11:48.556739</td>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-01-21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>804228</td>\n",
       "      <td>2017-01-12 08:01:45.159739</td>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-01-12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>661590</td>\n",
       "      <td>2017-01-11 16:55:06.154213</td>\n",
       "      <td>treatment</td>\n",
       "      <td>new_page</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-01-11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>853541</td>\n",
       "      <td>2017-01-08 18:28:03.143765</td>\n",
       "      <td>treatment</td>\n",
       "      <td>new_page</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-01-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>864975</td>\n",
       "      <td>2017-01-21 01:52:26.210827</td>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>1</td>\n",
       "      <td>2017-01-21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id                   timestamp      group landing_page  converted  \\\n",
       "0   851104  2017-01-21 22:11:48.556739    control     old_page          0   \n",
       "1   804228  2017-01-12 08:01:45.159739    control     old_page          0   \n",
       "2   661590  2017-01-11 16:55:06.154213  treatment     new_page          0   \n",
       "3   853541  2017-01-08 18:28:03.143765  treatment     new_page          0   \n",
       "4   864975  2017-01-21 01:52:26.210827    control     old_page          1   \n",
       "\n",
       "         date  \n",
       "0  2017-01-21  \n",
       "1  2017-01-12  \n",
       "2  2017-01-11  \n",
       "3  2017-01-08  \n",
       "4  2017-01-21  "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 导入数据并读取\n",
    "data=pd.read_csv('ab_data.csv')\n",
    "data['date']=data.timestamp.str[:10]\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4df99e5e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 是否重复值\n",
    "data.duplicated().sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7324b8df",
   "metadata": {},
   "source": [
    "$n_A=kn_Bandn_B =(\\frac{P_A(1-P_A)}{k})+P_B(1-P_B)(\\frac{Z_1-\\alpha+Z_1-\\beta}{P_A-P_B})^2$\n",
    "\n",
    "###### 根据常规默认值确定α ,β,K 值 α = 0.05, β = 0.2 ,K = 1 (组件样本均衡)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "32e77229",
   "metadata": {},
   "outputs": [],
   "source": [
    "alpha = 0.05 \n",
    "beta = 0.2\n",
    "k =1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "24760230",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.11880724790277405"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求P_A  计算实验组广告点击率\n",
    "P_treament =data.converted[(data.group=='treatment')&(data.landing_page=='new_page')].mean()\n",
    "P_treament"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dfa99351",
   "metadata": {},
   "outputs": [],
   "source": [
    "#求P_B  求对照组广告点击率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "cc0582d4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.1203863045004612"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P_control=data.converted[(data.group=='control')&(data.landing_page=='old_page')].mean()\n",
    "P_control"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "6e08e361",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-0.0015790565976871451"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求P_A-P_B\n",
    "P_ab=P_treament-P_control\n",
    "P_ab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "4fc697eb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.10469208574854284"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 求P_A*（1-P_A）\n",
    "P_treament_1_pa=P_treament*(1-P_treament)\n",
    "P_treament_1_pa"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "f0ab86ec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.10589344218918344"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 求P_B*(1-P_B)\n",
    "P_control_1_pb=P_control*(1-P_control)\n",
    "P_control_1_pb"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "474031ff",
   "metadata": {},
   "source": [
    "#求 $Z_1-\\alpha$  和  $Z_1-\\beta$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "5ea0dc73",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1.6448536269514722 0.8416212335729143\n"
     ]
    }
   ],
   "source": [
    "z_alpha = stats.norm.ppf(1-alpha)\n",
    "z_beta = stats.norm.ppf(1-beta)\n",
    "print(z_alpha,z_beta)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "ee4f4c79",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.4864748605243863"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "z_ab=z_alpha+z_beta\n",
    "z_ab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "c62ad0c8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1.6448536269514729, 0.8416212335729142)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "z_1_alpha = stats.norm.isf(alpha,loc=0,scale=1)\n",
    "z_1_beta = stats.norm.isf(beta,loc=0,scale=1)\n",
    "z_1_alpha,z_1_beta"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "id": "fc4101b3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "15.60530585899227"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa + P_control_1_pb)*(z_alpha+z_beta/P_treament-P_control)**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "ce4c0174",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "91.18009704961483"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa + P_control_1_pb)*((z_alpha+z_beta)/P_treament-P_control)**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "72672a99",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "59454.100110540145"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa + P_control_1_pb)*(z_alpha+z_beta/(P_treament-P_control))**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "476d7f1b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "522157.2038205083"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa + P_control_1_pb)*((z_alpha+z_beta)/(P_treament-P_control))**2\n",
    "n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ab271978",
   "metadata": {},
   "source": [
    "#### 由于求出的样本量太大，\n",
    " H1为 P_treatment- P_control>= 0，为计算样本量，这里需要指定一个非0的值， 此值的绝对值越小样本量越大， \n",
    " P_treatment- P_control >=0.014\n",
    " 我们先指定一个偏小的值 0.015"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "c03ef1f1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.10480724790277406 0.09382268868982052\n"
     ]
    }
   ],
   "source": [
    "#求P_B1 和 P_B1*(1-P_B1)\n",
    "P_control1=P_treament-0.014\n",
    "P_control_1_pb1=P_control1*(1-P_control1)\n",
    "print(P_control1,P_control_1_pb1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "ff9deaa2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.013999999999999999"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 求P_A-P_B\n",
    "P_ab1=P_treament-P_control1\n",
    "P_ab1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "b95992e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6261.882420238143"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa + P_control_1_pb1)*(z_ab/P_ab1)**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "7d9fa60d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6261.882420238143"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa + P_control_1_pb1)*((z_alpha+z_beta)/(P_treament-P_control1))**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "id": "17c02cb3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "757.2105138811303"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa + P_control_1_pb1)*(z_alpha+z_beta/(P_treament-P_control1))**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "303b2aab",
   "metadata": {
    "code_folding": []
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "86.0824122314524"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa + P_control_1_pb1)*((z_alpha+z_beta)/P_treament-P_control1)**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "id": "296f221b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "14.764104434787713"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa + P_control_1_pb1)*(z_alpha+z_beta/P_treament-P_control1)**2\n",
    "n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fcc23e8d",
   "metadata": {},
   "source": [
    "#### 由于求出的样本量太大，\n",
    " H1为 P_treatment- P_control>= 0，为计算样本量，这里需要指定一个非0的值， 此值的绝对值越小样本量越大， \n",
    " P_treatment- P_control >=0.015\n",
    " 我们先指定一个偏小的值 0.015"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "id": "761abc74",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.13538630450046119 0.11705685305416959\n"
     ]
    }
   ],
   "source": [
    "#求P_A1 和 P_A1*(1-P_A1)\n",
    "P_treament1=P_control+0.015\n",
    "P_treament_1_pa1=P_treament1*(1-P_treament1)\n",
    "print(P_treament1,P_treament_1_pa1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "id": "6eabdc60",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.014999999999999986"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 求P_A-P_B\n",
    "P_ab2=P_treament1-P_control\n",
    "P_ab2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "id": "347da2b9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6126.235378834387"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa1 + P_control_1_pb)*(z_ab/P_ab2)**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "0f717ccc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "6126.235378834387"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa1 + P_control_1_pb)*((z_alpha+z_beta)/(P_treament1-P_control))**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "id": "e4994399",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "743.6287717078332"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa1 + P_control_1_pb)*(z_alpha+z_beta/(P_treament1-P_control))**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "id": "bef117d7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "74.21888938429012"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa1 + P_control_1_pb)*((z_alpha+z_beta)/P_treament1-P_control)**2\n",
    "n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "id": "8a03ec96",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "13.359558772179296"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#求n=(P_A*（1-P_A) + P_B*(1-P_B))((z_alpha+z_beta)/(P_A-P_B))**2\n",
    "n=(P_treament_1_pa1 + P_control_1_pb)*(z_alpha+z_beta/P_treament1-P_control)**2\n",
    "n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "45e3d414",
   "metadata": {},
   "source": [
    "### 7.利用统计工具实现检验(45分)\n",
    "根据ab_test.csv提供的数据实现检验，确定使用哪个色调的广告banner."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "49436699",
   "metadata": {},
   "outputs": [],
   "source": [
    "利用python 实现检验，步骤如下：\n",
    "1. 读取ab_test.csv 数据\n",
    "2. 计算统计量\n",
    "3. 计算统计量的显著性P值\n",
    "4. 用统计量的显著性P值与显著性α比较做决策\n",
    "【如果左侧检验，求统计量左侧P值，如右侧检验求右侧P值即 1 - 左侧概率， 决策时 P直接与α比\n",
    "较， 如果双侧检验左右两侧都有可能拒绝，两个P值取最小值 与 α/2 比较或 P*2 与 α比较】\n",
    "5. 作业要求 把2-4步骤 封装为一个函数，调用时输入参数 有 检验数据 ，α， 输出参数有 检验结论\n",
    "，统计量 ， P值"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9f9afdd3",
   "metadata": {},
   "source": [
    "#### 1. 读取ab_test.csv 数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "50ee0a72",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>timestamp</th>\n",
       "      <th>group</th>\n",
       "      <th>landing_page</th>\n",
       "      <th>converted</th>\n",
       "      <th>date</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>851104</td>\n",
       "      <td>2017-01-21 22:11:48.556739</td>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-01-21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>804228</td>\n",
       "      <td>2017-01-12 08:01:45.159739</td>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-01-12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>661590</td>\n",
       "      <td>2017-01-11 16:55:06.154213</td>\n",
       "      <td>treatment</td>\n",
       "      <td>new_page</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-01-11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>853541</td>\n",
       "      <td>2017-01-08 18:28:03.143765</td>\n",
       "      <td>treatment</td>\n",
       "      <td>new_page</td>\n",
       "      <td>0</td>\n",
       "      <td>2017-01-08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>864975</td>\n",
       "      <td>2017-01-21 01:52:26.210827</td>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>1</td>\n",
       "      <td>2017-01-21</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id                   timestamp      group landing_page  converted  \\\n",
       "0   851104  2017-01-21 22:11:48.556739    control     old_page          0   \n",
       "1   804228  2017-01-12 08:01:45.159739    control     old_page          0   \n",
       "2   661590  2017-01-11 16:55:06.154213  treatment     new_page          0   \n",
       "3   853541  2017-01-08 18:28:03.143765  treatment     new_page          0   \n",
       "4   864975  2017-01-21 01:52:26.210827    control     old_page          1   \n",
       "\n",
       "         date  \n",
       "0  2017-01-21  \n",
       "1  2017-01-12  \n",
       "2  2017-01-11  \n",
       "3  2017-01-08  \n",
       "4  2017-01-21  "
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data=pd.read_csv('ab_data.csv')\n",
    "data['date']=data.timestamp.str[:10]\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "801a09e3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>group</th>\n",
       "      <th>landing_page</th>\n",
       "      <th>date</th>\n",
       "      <th>user_id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>control</td>\n",
       "      <td>new_page</td>\n",
       "      <td>2017-01-02</td>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>control</td>\n",
       "      <td>new_page</td>\n",
       "      <td>2017-01-03</td>\n",
       "      <td>94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>control</td>\n",
       "      <td>new_page</td>\n",
       "      <td>2017-01-04</td>\n",
       "      <td>77</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>control</td>\n",
       "      <td>new_page</td>\n",
       "      <td>2017-01-05</td>\n",
       "      <td>111</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>control</td>\n",
       "      <td>new_page</td>\n",
       "      <td>2017-01-06</td>\n",
       "      <td>78</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>87</th>\n",
       "      <td>treatment</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-20</td>\n",
       "      <td>88</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>88</th>\n",
       "      <td>treatment</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-21</td>\n",
       "      <td>92</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>89</th>\n",
       "      <td>treatment</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-22</td>\n",
       "      <td>79</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>treatment</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-23</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>91</th>\n",
       "      <td>treatment</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-24</td>\n",
       "      <td>46</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>92 rows × 4 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        group landing_page        date  user_id\n",
       "0     control     new_page  2017-01-02       35\n",
       "1     control     new_page  2017-01-03       94\n",
       "2     control     new_page  2017-01-04       77\n",
       "3     control     new_page  2017-01-05      111\n",
       "4     control     new_page  2017-01-06       78\n",
       "..        ...          ...         ...      ...\n",
       "87  treatment     old_page  2017-01-20       88\n",
       "88  treatment     old_page  2017-01-21       92\n",
       "89  treatment     old_page  2017-01-22       79\n",
       "90  treatment     old_page  2017-01-23       95\n",
       "91  treatment     old_page  2017-01-24       46\n",
       "\n",
       "[92 rows x 4 columns]"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df=data.groupby(by=['group','landing_page','date'],as_index=False)['user_id'].count()\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "3963270e",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>group</th>\n",
       "      <th>landing_page</th>\n",
       "      <th>date</th>\n",
       "      <th>user_id</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-02</td>\n",
       "      <td>2859</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-03</td>\n",
       "      <td>6590</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-04</td>\n",
       "      <td>6578</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-05</td>\n",
       "      <td>6427</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-06</td>\n",
       "      <td>6606</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-07</td>\n",
       "      <td>6604</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-08</td>\n",
       "      <td>6687</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-09</td>\n",
       "      <td>6628</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-10</td>\n",
       "      <td>6654</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-11</td>\n",
       "      <td>6688</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-12</td>\n",
       "      <td>6522</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-13</td>\n",
       "      <td>6552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-14</td>\n",
       "      <td>6548</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-15</td>\n",
       "      <td>6714</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-16</td>\n",
       "      <td>6591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-17</td>\n",
       "      <td>6617</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-18</td>\n",
       "      <td>6482</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-19</td>\n",
       "      <td>6578</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-20</td>\n",
       "      <td>6534</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-21</td>\n",
       "      <td>6749</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-22</td>\n",
       "      <td>6596</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-23</td>\n",
       "      <td>6716</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>2017-01-24</td>\n",
       "      <td>3754</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      group landing_page        date  user_id\n",
       "23  control     old_page  2017-01-02     2859\n",
       "24  control     old_page  2017-01-03     6590\n",
       "25  control     old_page  2017-01-04     6578\n",
       "26  control     old_page  2017-01-05     6427\n",
       "27  control     old_page  2017-01-06     6606\n",
       "28  control     old_page  2017-01-07     6604\n",
       "29  control     old_page  2017-01-08     6687\n",
       "30  control     old_page  2017-01-09     6628\n",
       "31  control     old_page  2017-01-10     6654\n",
       "32  control     old_page  2017-01-11     6688\n",
       "33  control     old_page  2017-01-12     6522\n",
       "34  control     old_page  2017-01-13     6552\n",
       "35  control     old_page  2017-01-14     6548\n",
       "36  control     old_page  2017-01-15     6714\n",
       "37  control     old_page  2017-01-16     6591\n",
       "38  control     old_page  2017-01-17     6617\n",
       "39  control     old_page  2017-01-18     6482\n",
       "40  control     old_page  2017-01-19     6578\n",
       "41  control     old_page  2017-01-20     6534\n",
       "42  control     old_page  2017-01-21     6749\n",
       "43  control     old_page  2017-01-22     6596\n",
       "44  control     old_page  2017-01-23     6716\n",
       "45  control     old_page  2017-01-24     3754"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[((df.group=='control')&(df.landing_page=='old_page'))|((df.group=='treament')&(df.landing_page=='new_page'))]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "id": "e5bb366d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "group      landing_page\n",
       "control    new_page          1928\n",
       "           old_page        145274\n",
       "treatment  new_page        145311\n",
       "           old_page          1965\n",
       "Name: user_id, dtype: int64"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.groupby([\"group\",\"landing_page\"])[\"user_id\"].count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4ac5676e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 求实验组的新页面P_A和对照组的旧页面P_B比例之差"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a439f3bb",
   "metadata": {},
   "source": [
    "比例差使用  $stats.norm.sf(P_A-P_B,πA - πB,\\sqrt{\\frac{P_A*(1-P_A) }{n_A}+\\frac{P_B*(1-P_B)}{n_B}})$\n",
    "（比例之差）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d0b71f1f",
   "metadata": {},
   "outputs": [],
   "source": [
    "在这里我们，需要求的：\n",
    "p_A : 抽取的实验组的比例\n",
    "p_B : 抽取的对照组的比例\n",
    "πA - πB：H0: πA - πB >= a，即a\n",
    "n_A ：抽取的实验组的样本量\n",
    "n_B ：抽取的对照组的样本量"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e96e87fe",
   "metadata": {},
   "source": [
    "$P_A-P_B$  ,\n",
    "$\\bar{x_A}-\\bar{x_B}$  ,\n",
    "$\\sqrt{\\frac{\\pi_A*(1-P_B) }{n_A}+\\frac{P_B*(1-P_B)}{n_B}}$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "f75ae741",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "id": "97a40e8c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>group</th>\n",
       "      <th>landing_page</th>\n",
       "      <th>converted</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>control</td>\n",
       "      <td>new_page</td>\n",
       "      <td>0.106383</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>control</td>\n",
       "      <td>old_page</td>\n",
       "      <td>0.113809</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>treatment</td>\n",
       "      <td>new_page</td>\n",
       "      <td>0.113781</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>treatment</td>\n",
       "      <td>old_page</td>\n",
       "      <td>0.097826</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       group landing_page  converted\n",
       "0    control     new_page   0.106383\n",
       "1    control     old_page   0.113809\n",
       "2  treatment     new_page   0.113781\n",
       "3  treatment     old_page   0.097826"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算P_A,P_B\n",
    "P=data[data.date=='2017-01-03'].groupby(by=['group','landing_page'],as_index=False)['converted'].mean()\n",
    "P"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "id": "7350cdd9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "-2.820284587351507e-05"
      ]
     },
     "execution_count": 113,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P_A_B=P.converted[2]-P.converted[1]\n",
    "P_A_B      # 由于H0:p_treament-p_control<0  ，原假设H0成立，接受H0，拒绝H1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "f5fe14ec",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "6618 6590\n"
     ]
    }
   ],
   "source": [
    "n_A=data[data.date=='2017-01-03'].converted[(data.group=='treatment')&(data.landing_page=='new_page')].size\n",
    "n_B=data[data.date=='2017-01-03'].converted[(data.group=='control')&(data.landing_page=='old_page')].size\n",
    "print(n_A,n_B)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "id": "345b5392",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.005526379176809786"
      ]
     },
     "execution_count": 115,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sigma=np.sqrt(P.converted[2]*(1-P.converted[2])/n_A+P.converted[1]*(1-P.converted[1])/n_B)\n",
    "sigma"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b1b90cae",
   "metadata": {},
   "outputs": [],
   "source": [
    "$ P_A-P_B N(,sigma)$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "id": "79073eba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5020359187180234"
      ]
     },
     "execution_count": 119,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "P_statistic = 1-stats.norm.cdf(P_A_B,0,sigma) # norm.dist\n",
    "P_statistic"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "48f6a2d2",
   "metadata": {},
   "source": [
    "if P_statistic>alpha:\n",
    "    print('显著性$P>\\alpha$,实验组点击率>对照组点击率')\n",
    "else:\n",
    "    print('显著性$P<\\alpha$,实验组点击率<对照组点击率')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "id": "c0684f86",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "显著性 𝑃>𝛼 ,实验组点击率<=对照组点击率\n"
     ]
    }
   ],
   "source": [
    "if (P_statistic>alpha): \n",
    "    print('显著性 𝑃>𝛼 ,实验组点击率<=对照组点击率') \n",
    "else: \n",
    "    print('显著性 𝑃<𝛼 ,实验组点击率>对照组点击率')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2ff5e89a",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "f6fd0592",
   "metadata": {},
   "outputs": [],
   "source": [
    "#封装如下\n",
    "def ABtest_P(df: pd.DataFrame, group_col: str = None, value_col: str = None ,alpha:float = 0.05):\n",
    "    '''\n",
    "    :param df: 被分析DateFrame对象\n",
    "    :param alpha: 显著性\n",
    "    :param group_col: 组列的名字，默认为df的第一列\n",
    "    :param value_col: 值列的名字,默认为df的第2列\n",
    "    :return: tongjiliang p_value p_type\n",
    "    '''\n",
    "        # 列名\n",
    "    if not group_col:\n",
    "        group_col = df.columns[0]\n",
    "    if not value_col:\n",
    "        value_col = df.columns[1]\n",
    "        \n",
    "    temp = df.groupby(group_col,as_index=False)[value_col].mean()\n",
    "    temp_n = df.groupby(group_col,as_index=False)[value_col].count()\n",
    "    tongjiliang =temp.iloc[0,1] - temp.iloc[1,1]\n",
    "        \n",
    "    diff_error =np.sqrt(temp.iloc[0,1] *(1-temp.iloc[0,1])/temp_n.iloc[0,1] +  temp.iloc[1,1] *(1-temp.iloc[1,1])/temp_n.iloc[1,1])\n",
    "    \n",
    "    tongjiliang_left_p = stats.norm.cdf(tongjiliang,0,diff_error)\n",
    "    tongjiliang_right_p = 1-stats.norm.cdf(tongjiliang,0,diff_error)\n",
    "    tongjiliang_site_p = tongjiliang_left_p *2;\n",
    "    if tongjiliang_site_p >1:\n",
    "        tongjiliang_site_p = tongjiliang_right_p*2\n",
    "    \n",
    "#     在封包的时候，我们左右双侧检验都用上，提高通用性\n",
    "    temp_l = [[temp.iloc[0,0],temp.iloc[1,0],tongjiliang,\"左侧\",tongjiliang_left_p,np.where(tongjiliang_left_p<alpha,\"显著\",\"不显著\")],\n",
    "              [temp.iloc[0,0],temp.iloc[1,0],tongjiliang,\"右侧\",tongjiliang_right_p,np.where(tongjiliang_right_p<alpha,\"显著\",\"不显著\")],\n",
    "              [temp.iloc[0,0],temp.iloc[1,0],tongjiliang,\"双侧\",tongjiliang_site_p,np.where(tongjiliang_site_p<alpha,\"显著\",\"不显著\")]]\n",
    "    temp = pd.DataFrame(temp_l,columns =[\"p\",\"p0\",\"统计量\",\"检测\",\"p_value\",\"结果\"])\n",
    "    \n",
    "    return temp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "d2f72334",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>group</th>\n",
       "      <th>converted</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>treatment</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>treatment</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>57</th>\n",
       "      <td>control</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>treatment</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>84</th>\n",
       "      <td>control</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        group  converted\n",
       "38  treatment          0\n",
       "41  treatment          0\n",
       "57    control          0\n",
       "72  treatment          0\n",
       "84    control          0"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "temp  = data[data.date=='2017-01-03'].loc[((data.group==\"control\") & (data.landing_page==\"old_page\")) \n",
    "                  | ((data.group==\"treatment\") & (data.landing_page==\"new_page\")),[\"group\",\"converted\"]]\n",
    "temp.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "42317771",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>p</th>\n",
       "      <th>p0</th>\n",
       "      <th>统计量</th>\n",
       "      <th>检测</th>\n",
       "      <th>p_value</th>\n",
       "      <th>结果</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>control</td>\n",
       "      <td>treatment</td>\n",
       "      <td>0.000028</td>\n",
       "      <td>左侧</td>\n",
       "      <td>0.502036</td>\n",
       "      <td>不显著</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>control</td>\n",
       "      <td>treatment</td>\n",
       "      <td>0.000028</td>\n",
       "      <td>右侧</td>\n",
       "      <td>0.497964</td>\n",
       "      <td>不显著</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>control</td>\n",
       "      <td>treatment</td>\n",
       "      <td>0.000028</td>\n",
       "      <td>双侧</td>\n",
       "      <td>0.995928</td>\n",
       "      <td>不显著</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         p         p0       统计量  检测   p_value   结果\n",
       "0  control  treatment  0.000028  左侧  0.502036  不显著\n",
       "1  control  treatment  0.000028  右侧  0.497964  不显著\n",
       "2  control  treatment  0.000028  双侧  0.995928  不显著"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ABtest_P(temp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "21a09545",
   "metadata": {},
   "outputs": [],
   "source": [
    "得出结论实验组New_page的广告点击率没有显著大于对照组Old_page的广告点击率"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
